Aave 允许用户借贷约 20 种加密货币。Aave 最突出的产品之一是“闪贷”,这是 DeFi 行业的首个无担保贷款解决方案。然而,无担保贷款的能力需要权衡:闪贷必须在相同的金融操作中偿还,这意味着它们只发行几分钟甚至几秒钟。不过,闪贷在套利、抵押品闪兑或债务交换方面还是有用的。
BalancerVault.getPoolTokens()
返回的池中底层代币的余额totalSupply()
返回的代币池中 LP 代币的总供应量WeightedBalancerLPOracle.getPrice()
返回的以以太坊计价的 LP 代币价格主要问题在于 balancer pools 存在一个 view-only reentrancy bug。由于 view
类型的调用并不受保护,导致攻击者可以在受害者更新 pool balance 前执行恶意合约,造成「虚高定价 overpriced」,通过赎回抵押品谋取利益。
主要使用了 Phalcon 和 MetaSleuth 进行攻击交易的追踪
Receiver 执行 Balancer 的 exitPool
操作
totalSupply
回到了攻击者存款前的数量,但是 balances
仍未被更新,则此时 LP 代币的价格 price
是虚高的price
虚高,所以可以获得超额虚拟货币Balancer 更新 balances
的数据,使之回归真实数据(但为时已晚)
Receiver 归还闪电贷款,剩下的虚拟货币均为攻击收益